/* -------------------------------------------------------------------------
//  File        :   director.h
//  Author      :   able
//  Datet       :   2014/4/18 1:04
//  Brief       :   
//
// -----------------------------------------------------------------------*/
#ifndef __DIRECTOR_H_
#define __DIRECTOR_H_

#include "Singleton.h"
#include "scene.h"
#include <stack>

class CDirectorX
{
public:
    CDirectorX(void);
    ~CDirectorX(void);

    void PlayScene(CScene* scene);
    void EndScene();
    void EndGame();

    bool Update();
    void Render();

public:
    void SetCemeraX(float x) {m_cameraX = x;}
    void SetCemeraY(float y) {m_cameraY = y;}
    float GetCemeraX() {return m_cameraX;}
    float GetCemeraY() {return m_cameraY;}

private:
    CScene* m_currentScene;
    CScene* m_oldScene;

    std::stack<CScene*> m_sceneStack;

    float m_cameraX;
    float m_cameraY;
    bool m_endGame;
};

typedef Singleton<CDirectorX> CDirector;

#endif // __DIRECTOR_H_

